package thread;

/**
 * 多线程
 * 线程是一个程序的单一顺序执行流程。多个单一流程一起运行就是多线程
 * 多线程是并发执行的
 * <p>
 * 创建线程有两种方式，第一种：继承thread并重写run方法
 */
public class ThreadDemo {
    public static void main(String[] args) {
        //1实例化线程
        Thread t1 = new MyThread1();
        Thread t2 = new MyThread2();
        //2启动线程
        t1.start();
        t2.start();
    }
}
/*
   第一种创建方式的优点：结构简单，利于匿名内部类

   缺点：
   1：由于Java是单继承的，这导致如果继承了thread就无法继承其他类了
   2：在定义线程时定义线程任务
 */
class MyThread1 extends Thread {
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("你是谁啊？");
        }
    }
}

class MyThread2 extends Thread {
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("who are you");
        }
    }
}